﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Espam.Idiomas.Decimo.Tesis.Negocio;
using System.Drawing;

namespace Espam.Idiomas.Decimo.Tesis.Web
{
    public partial class UI_NewCode : System.Web.UI.Page
    {
        string validaSession = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
                Response.Cache.SetAllowResponseInBrowserHistory(false);
                Response.Cache.SetNoStore();

                if (Session["userEspamIdiomasVarSession001"] == null || Session["rolEspamIdiomasVarSession003"] == null)
                {
                    validaSession = "NoHaIniciadoSession";
                    Response.Redirect("UI_Login.aspx?validaSession=" + validaSession);
                }
                else if (Session["userEspamIdiomasVarSession001"] != null && Session["rolEspamIdiomasVarSession003"].ToString() == "Docente")
                {
                    Response.Redirect("UI_DashboardTeacher.aspx");
                }
                else if (Session["userEspamIdiomasVarSession001"] != null && Session["rolEspamIdiomasVarSession003"].ToString() == "Administradores")
                {
                    CargarCodigos();
                    btnGuardarCodigo.Attributes.Add("onclick", " this.disabled = true,this.value='Procesando...'; " + ClientScript.GetPostBackEventReference(btnGuardarCodigo, null) + ";");

                }
                else if (Session["userEspamIdiomasVarSession001"] != null && Session["rolEspamIdiomasVarSession003"].ToString() == "Alumno")
                {
                    Response.Redirect("UI_DashboardStudents.aspx");
                }
            }
            else
            {

            }
           
        }
        private void CargarCodigos()
        {
            Codigos oCodigos = new Codigos();
            gvCodigos.DataSource = oCodigos.GetCodigos();
            gvCodigos.DataBind();
        }

        protected void btnGuardarCodigo_Click(object sender, EventArgs e)
        {
            Codigos oCodigos = new Codigos();
            string mensaje = "";
            if (Page.IsValid)
            {
                if (btnGuardarCodigo.Text == "Guardar Código")
                {                  
                    oCodigos.codigo = txtCodigo.Text;
                    oCodigos.equivalente = txtEquivalente.Text;
                    mensaje = oCodigos.InsertCodigo();
                    lblvalida.Text = mensaje;
                    if (mensaje == "CÓDIGO INGRESADO CORRECTAMENTE")
                    {
                        ActivaSuccess();
                    }
                    else
                    {
                        ActivaFail();
                    }
                    CargarCodigos();
                    LimpiarCampos();
                }

                else if (btnGuardarCodigo.Text == "Editar Código")
                {
                    try
                    {
                        oCodigos.idCodigo =(int)Session["idCodigoespamidiotes"];
                        oCodigos.codigo = txtCodigo.Text;
                        oCodigos.equivalente = txtEquivalente.Text;
                        mensaje = oCodigos.EditCodigo();
                        lblvalida.Text = mensaje;
                        if (mensaje == "CÓDIGO EDITADO CORRECTAMENTE")
                        {
                            ActivaSuccess();
                        }
                        else
                        {
                            ActivaFail();
                        }
                        CargarCodigos();
                        LimpiarCampos();
                        NuevoCodigo();
                        Session.Remove("idCodigoespamidiotes");
                    }
                    catch (Exception)
                    {

                        Response.Redirect("UI_NewCode.aspx");
                    }
                }

            }
        }
        protected void ActivaSuccess()
        {
            lblvalida.ForeColor = Color.Green;
            lblvalida.Visible = true;
        }
        protected void ActivaFail()
        {
            lblvalida.ForeColor = Color.Red;
            lblvalida.Visible = true;
        }
        private void EditarCodigo()
        {
            btnCancelar.Visible = true;
            btnGuardarCodigo.Text = "Editar Código";
        }
        private void LimpiarCampos()
        {
            txtCodigo.Text = string.Empty;
            txtEquivalente.Text = string.Empty;
        }

        protected void gvCodigos_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<Codigos> lista = new List<Codigos>();
            Codigos oCodigos = new Codigos();
            GridViewRow row = gvCodigos.SelectedRow;
            int id = Convert.ToInt32(gvCodigos.DataKeys[row.RowIndex].Value);
            oCodigos.idCodigo = id;
            lista = oCodigos.GetCodigoById();
            txtCodigo.Text = lista[0].codigo;
            txtEquivalente.Text = lista[0].equivalente;
            Session["idCodigoespamidiotes"] = id;
            OcultaMnesaje();
            EditarCodigo();
            CargarCodigos();
            
        }
        private void OcultaMnesaje()
        {
        lblvalida.Text = string.Empty;
            lblvalida.Visible = false;
        }
        private void NuevoCodigo()
        {
            btnGuardarCodigo.Text = "Guardar Código";
            btnCancelar.Visible = false;
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("UI_NewCode.aspx");
        }

        //protected void gvCodigos_Load(object sender, EventArgs e)
        //{
        //    if (gvCodigos.Rows.Count > 0)
        //        ScriptManager.RegisterStartupScript(this, this.GetType(), "Dttable", String.Format("CargaDataTable('{0}',{1});", "Contenido_gvCodigos", gvCodigos.Rows[0].Cells.Count), true);
        //}

        //protected void gvCodigos_PreRender(object sender, EventArgs e)
        //{
        //    GridView gvCodigos = (sender) as GridView;
        //    if (gvCodigos.Rows.Count > 0)
        //    {
        //        //This replaces <td> with <th> and adds the scope attribute
        //        gvCodigos.UseAccessibleHeader = true;

        //        //This will add the <thead> and <tbody> elements
        //        gvCodigos.HeaderRow.TableSection = TableRowSection.TableHeader;

        //        //This adds the <tfoot> element. 
        //        //Remove if you don't have a footer row
        //        gvCodigos.FooterRow.TableSection = TableRowSection.TableFooter;
        //    }
        //}

       
    }
}